#include <fcntl.h>
#include "error.c"
#include "apue.h"

/**
 * 设置文件句柄状态标签
 */
void set_fl(int fd, int flags){
    int val;

    if((val = fcntl(fd, F_GETFL, 0)) < 0){
        err_sys("set_fl fcntl F_GETFL error");
    }

    val |= flags;
    if(fcntl(fd, F_SETFL, val) < 0){
        err_sys("set_fl fcntl F_SETFL error");
    }
}

//
void clr_fl(int fd, int flags){
    int val;

    if((val = fcntl(fd, F_GETFL, 0)) < 0){
        err_sys("clr_fl fcntl F_GETFL error");
    }

    val &= ~flags;
    if(fcntl(fd, F_SETFL, val) < 0){
        err_sys("clr_fl fcntl F_SETFL error");
    }
}